In many imaging devices, the process of building up an image involves a conversion of acquired/pre-processed data, for example conversion from one co-ordinate system to another. For example, an imaging system may collect data in polar co-ordinates and display the data in Cartesian co-ordinates. It is often the case that, on applying the prescribed point-to-point transformation necessary to do this conversion, assigning a value to a desired pixel location in the final co-ordinate system calls for retrieving data from a non-existent location in the original co-ordinate system. This non-existent location is called the ideal location. For example, due to factors such as the resolution of the imaging scanner or other data gathering device, the resolution of the display device, or the difference in resolutions between these two devices, the display device may wish to display a pixel of video information for a location on the display device (e.g. video monitor), where there is no corresponding pixel of video information gathered by the imaging scanner. The value of this pixel must therefore be determined by alternate methods.
A simple method of assigning a value to the desired pixel location is by allowing it to take on the value of the original data point positioned closest to the desired ideal location. More accurate methods compute the value to be assigned to the desired pixel location by forming a weighted-average of several values obtained in the neighborhood of the ideal location. Factors used to determine which neighborhood values to use, and the weight assigned to each neighborhood value, include: proximity to the ideal location as well as characteristics of the neighborhood value itself such as it's brightness, hue, color, etc. In general, for a given transformation, the weights and the neighborhood associated with each desired pixel location being filled are pre-computed and stored as a look-up table.
The process of building up the final image calls for filling each pixel location by (1) retrieving from the look-up table the weights and neighborhood associated with the pixel location, (2) retrieving the data from the identified neighborhood, (3) computing the desired pixel value by forming the weighted-average, and 4) using the computed pixel value to display a pixel of video information that represents the weighted average.
Owing to the considerable number of data-retrieval and arithmetic operations needed to fill each pixel in the final image, this method is often implemented using dedicated hardware to perform the arithmetic operations and other operation necessary to ensure that the final image is rapidly composed and presented in its entirety. This becomes important if the images form part of a video sequence, whose satisfactory viewing calls for maintaining a minimum frame rate. Although the transformation can be accomplished using software, in applications where the processor has a limited amount of time between frames, using dedicated hardware remains the preferred method. Dedicated hardware, however, is costly and takes up additional space within the imaging system. There is therefore a need for systems and methods of processing and interpolating video and other types of data more rapidly than conventional software solutions, without incurring the additional expense and space requirements of a dedicated hardware solution.